import cmd
import sys

class InteractiveShell(cmd.Cmd):
    prompt = '>>> '  # 设置命令提示符

    def __init__(self):
        super().__init__()
        self.my_var = 42  # 示例变量

    def do_set(self, arg):
        """设置变量的值，语法：set <value>"""
        try:
            self.my_var = int(arg)  # 将输入的值转换为整数
            print(f"my_var 被设置为 {self.my_var}")
        except ValueError:
            print("请输入一个有效的整数值")

    def do_show(self, arg):
        """显示变量的当前值"""
        print(f"当前 my_var 的值是 {self.my_var}")

    def do_exit(self, arg):
        """退出命令行"""
        print("退出命令行")
        return True  # 返回 True 退出命令行

    def postcmd(self, stop, line):
        """这个方法在每个命令执行后被调用，用于捕获 CTRL+C"""
        if stop:
            print("\n交互式命令行已退出")
        return stop

if __name__ == '__main__':
    shell = InteractiveShell()

    try:
        shell.cmdloop()  # 启动命令行界面
    except KeyboardInterrupt:
        print("\n操作被中断，退出命令行")
        sys.exit(0)  # 捕获 CTRL+C 并退出程序
